﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;

namespace ECommerce.DAO.SQL.Productos.Precios
{
    public static class TipoPrecio
    {
        public static ECommerce.Model.Productos.Precios.TipoPrecio GetTipoPrecioById(Int32 Id)
        {
            ECommerce.Model.Productos.Precios.TipoPrecio TipoPrecio = new ECommerce.Model.Productos.Precios.TipoPrecio();
            DataTable dt = new DataTable();
            using (SqlConnection sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["Repuestos"].ConnectionString))
            {
                using (SqlCommand sqlComm = new SqlCommand("GetTipoPrecioById"))
                {
                    sqlComm.CommandType = CommandType.StoredProcedure;
                    SqlParameter param = new SqlParameter();
                    param.SqlDbType = SqlDbType.BigInt;
                    param.Value = Id;
                    param.ParameterName = "@Id";
                    sqlComm.Parameters.Add(param);

                    sqlComm.Connection = sqlConn;
                    sqlConn.Open();
                    using (SqlDataReader dr = sqlComm.ExecuteReader())
                    {
                        dt.Load(dr);
                    }
                    foreach (DataRow dr in dt.Rows)
                    {
                        TipoPrecio.Load(dr);
                    }
                    sqlConn.Close();
                }
            }
            return TipoPrecio;
        }
        public static ECommerce.Model.Productos.Precios.TipoPrecio GetTipoPrecioByIdPrecio(Int32 Id)
        {
            ECommerce.Model.Productos.Precios.TipoPrecio TipoPrecio = new ECommerce.Model.Productos.Precios.TipoPrecio();
            DataTable dt = new DataTable();
            using (SqlConnection sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["Repuestos"].ConnectionString))
            {
                using (SqlCommand sqlComm = new SqlCommand("GetTipoPrecioByIdPrecio"))
                {
                    sqlComm.CommandType = CommandType.StoredProcedure;
                    SqlParameter param = new SqlParameter();
                    param.SqlDbType = SqlDbType.BigInt;
                    param.Value = Id;
                    param.ParameterName = "@Id";
                    sqlComm.Parameters.Add(param);

                    sqlComm.Connection = sqlConn;
                    sqlConn.Open();
                    using (SqlDataReader dr = sqlComm.ExecuteReader())
                    {
                        dt.Load(dr);
                    }
                    foreach (DataRow dr in dt.Rows)
                    {
                        TipoPrecio.Load(dr);
                    }
                    sqlConn.Close();
                }
            }
            return TipoPrecio;
        }

        public static ECommerce.Model.Productos.Precios.TipoPrecio[] GetTiposPrecio()
        {
            List<ECommerce.Model.Productos.Precios.TipoPrecio> TipoPrecios = new List<ECommerce.Model.Productos.Precios.TipoPrecio>();
            ECommerce.Model.Productos.Precios.TipoPrecio TipoPrecio = new ECommerce.Model.Productos.Precios.TipoPrecio();
            DataTable dt = new DataTable();
            using (SqlConnection sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["Repuestos"].ConnectionString))
            {
                using (SqlCommand sqlComm = new SqlCommand("GetTiposPrecio"))
                {
                    sqlComm.CommandType = CommandType.StoredProcedure;
                    sqlComm.Connection = sqlConn;
                    sqlConn.Open();
                    using (SqlDataReader dr = sqlComm.ExecuteReader())
                    {
                        dt.Load(dr);
                    }
                    foreach (DataRow dr in dt.Rows)
                    {
                        TipoPrecio = new ECommerce.Model.Productos.Precios.TipoPrecio();
                        TipoPrecio.Load(dr);
                        TipoPrecios.Add(TipoPrecio);
                    }
                    sqlConn.Close();
                }
            }
            return TipoPrecios.ToArray();
        }

        public static int SetTipoPrecio(ECommerce.Model.Productos.Precios.TipoPrecio tipoPrecio)
        {
            int result = 0;
            using (SqlConnection sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["Repuestos"].ConnectionString))
            {
                using (SqlCommand sqlComm = new SqlCommand("SetTipoPrecio"))
                {
                    sqlComm.CommandType = CommandType.StoredProcedure;
                    SqlParameter param = new SqlParameter();
                    param.SqlDbType = SqlDbType.BigInt;
                    param.Value = tipoPrecio.Id;
                    param.ParameterName = "@Id";
                    sqlComm.Parameters.Add(param);

                    sqlComm.Connection = sqlConn;
                    sqlConn.Open();
                    result = (int)sqlComm.ExecuteScalar();
                    sqlConn.Close();
                }
            }
            return result;
        }
    }
}
